/**
 * \file Logger.h
 * \brief Logger definition class
 * \author Edouard ROGE
 * \date 12 septembre 2010
 */

#ifndef _LOGGER_
#define _LOGGER_

#include <string>

namespace Core
{
	namespace Log
	{
		/**
		 * \class Logger
		 * abstract class used to output logs
		 * Create a class derived from this one, and overwrite the write() method
		 * to write in appropriate output
		 */
		class Logger
		{
		public:
			/**
			 * \fn Logger();
			 * Default constructor
			 */
			Logger();

			/**
			 * \fn ~Logger();
			 * Destructor
			 */
			virtual ~Logger();

			/**
			 * \fn virtual void	Write(const std::string & _str) = 0;
			 * \param _str char buffer to write
			 * \brief abstract function.
			 */
			virtual void Write(const std::string & _str) = 0;
		};
	}
}
#endif //_LOGGER_
